In modem data processing systems including terminals connected to a server through serial lines, the serial interface circuits of the server, commonly referred to as Universal Asynchronous Receiver Transmitter (UART) may be automatically adapted to the various possible transmission speeds of the terminals. Upon initial connection of a terminal with a server, a user presses a specific key of the terminal, generally the "carriage return" (CR) key one or more times, to enable the server to detect the transmission speed and adapt, or reprogram, its associated UART circuit.
FIG. 1 represents a series of states of a serial line during the sending of a "CR" character encoded according to ASCII standard. Initially, in stand-by state, the serial line is at 1. At the beginning of the transmission of the character, the serial line goes to 0 during the transmission time of one bit. This initial bit at 0 is referred to as a START bit: and systematically indicates the beginning of transmission. Then, seven character code bits occur in order of increasing weight. For a "CR" character, these bits are 1011000. The eighth bit P transmitted after the START bit is, according to the transmission protocol, either an eighth, most-significant, bit of the transmitted character (at 0 for the "CR" key) or a parity bit that is set to 1 or 0 so that the number of transmitted bits at 1 is even (this bit is at 1 for the "CR" key). The last transmitted bit, STOP, is systematically at 1 and signals the end of transmission.
The intervals at 1 or at 0 associated with each transmitted bit are of the same length the value of which depends upon the transmission speed. For conventional serial transmission, a transmission speed is chosen from a plurality of standard speeds that are, for example, 75 bits/second and double speeds up to 38400 bits/second, or 57600 bits/second and double speeds up to, for example, 921600 bits/second. The speeds exceeding 57600 bits/second or the speeds below 38400 bits/second have a geometric progression (with a multiplying factor 2). Each speed is a nominal speed corresponding to a nominal time duration of the transmitted bits. The effective time duration of a bit may vary within a range up to .+-.33% of the nominal time duration, while the nominal speed variation does not exceed 2%.
A conventional method for detecting transmission speed consists in measuring at the server the width of the START bit, reprogramming the UART to the detected speed during the transmission of the second bit, acquiring the eight following bits (011000,P, STOP), and checking whether these bits are the right ones. A failure during this verification indicates either the character transmitted was not correct (was not the "CR" key) or the measurement of the START bit failed (for example because this bit was distorted, or measurement started too late). In this case, the system waits for the issuing of a new character "CR" on the line.
Conventionally, to determine the length of a time interval (or of a bit), the number of pulses of a fixed frequency clock occurring within the time interval to be measured is counted. The counted number of pulses provides a direct indication of the interval length. However, for identifying a nominal frequency amongst several possible nominal frequencies, this counted number cannot be directly used because it is further necessary to determine the nominal frequency to which this number corresponds. For this purpose, once the number has been counted, it has to be successively compared with a plurality of minimum and maximum values, where each pair of minimum and maximum values corresponds to an error range about a nominal value.
A drawback of such a method is that two limit values for each possible nominal frequency have to be memorized, which requires twice as many memory cells as nominal frequencies. Additionally, if the number of nominal frequencies is large, the limit values associated with the lowest nominal frequency are high and require a large-size memory cell. Indeed, for example, if 16 clock pulses in a bit are counted at the speed of 38400 bits/second, then 4096 clock pulses are counted in a bit at the speed of 75 bits/second. Number 4096 requires 12 bits to be stored whereas number 16 only needs 4 bits.
The simplest and least expensive conventional way of implementing the above method is to carry out its steps using software, this software generally being executed by a microprocessor of the server that monitors the serial connections. However, the limited speed of execution of the program does not allow the detection of high speeds and/or does not allow a suitable determination to be made of the transmission speeds, if a large number of serial connections are simultaneously used. If it is desired to adequately manage a large number of serial connections and/or to increase the speed of these serial connections whilst using this approach, the number of microprocessors assigned to the connections has to be significantly increased which is expensive.